python 统计词频后输出结果到Excel和txt文档

您所在的位置:网站首页 jupyter 输出表格 python 统计词频后输出结果到Excel和txt文档

python 统计词频后输出结果到Excel和txt文档

2024-06-02 23:25| 来源: 网络整理| 查看: 265

分词的应用场景还是蛮多的,比如电商里面的产品用户评价,每个商品的评价数很多,由于是大量的文本,需要从这些文本找出评价的关键字,这个时候分词就能派上用场;再比如,做文本分析,热点词统计都会用到分词。

整体思路就是利用python中的jieba库,对每一行文字进行分词处理,处理之后的结果放在list(列表)中。遍历列表,重复的值就计数,留下唯一的值作为key。

引用库 import jieba #分词 import xlwt #Excel库 import pandas as pd #pandas库 import matplotlib as mpl #matplotlib库由各种可视化类构成 from wordcloud import WordCloud #词云 import matplotlib.pyplot as plt #matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于快捷方式 配置 mpl.rcParams["font.sans-serif"] = ['Microsoft YaHei']#配置字体 plt.rcParams["axes.labelsize"] = 16 #轴域大小 plt.rcParams["xtick.labelsize"] =14 #x轴字体大小 plt.rcParams["ytick.labelsize"] =14 #y轴字体大小 plt.rcParams["legend.fontsize"]=12 #图例字体大小 plt.rcParams["figure.figsize"]=[15,9] #图形大小

如果不清楚figure、axes、xtick等概念,可以看下图

读取文件 data =pd.read_excel('/Users/song/Documents/test.xlsx') data = pd.DataFrame(data) 处理文件 word_list = []#分词结果放在word_list列表中 key_list = []#对word_list列表中的分词结果,进行循环处理,去重后的值作为key final = ‘' #自定义字符串,主要用来做词云 stopwords = [',','。','、','!','(',')','(',')',',','.','!','1','2',' '] # 停止词 for n in range(data.shape[0]): seg_list = list(jieba.cut(data['计划事项'][n])) for seg in seg_list: if seg not in stopwords: final = final + seg + ' ' word_list.append(seg) 统计词频写入txt word_dict={}#定义一个字典 with open(r'/Users/song/Downloads/weiyi.txt','w') as fw: for item in word_list: if item not in word_dict: word_dict[item] = 1 else: word_dict[item] += 1 orderList=list(word_dict.values()) orderList.sort(reverse=True) for i in range(len(orderList)): for key in word_dict: if word_dict[key]==orderList[i]: fw.write(key+' '+str(word_dict[key])+'\n') #写入txt文档 key_list.append(key) word_dict[key]=0

结果

客户 1238 拜访 1055 走访 1048 市场 687 服务 558 产品 500 技术 483 展会 405

写入Excel wbk = xlwt.Workbook() #定义一个workbook对象 sheet = wbk.add_sheet("wordCount")#新建一个sheet并命名 for i in range(len(key_list)): sheet.write(i, 1, label = orderList[i]) sheet.write(i, 0, label = key_list[i]) wbk.save(r'/Users/song/Downloads/wordCount.xls’)

结果

生成词云 my_wordcloud = WordCloud(font_path='/Library/Fonts/Arial Unicode.ttf',width=1000,height=600).generate(final) #font_path指定中文编码,否则不能显示中文 plt.imshow(my_wordcloud) #显示词云 plt.axis('off') #关掉坐标轴 plt.savefig(r'/Users/song/Downloads/ciyun.png') #保存生成的词云图 plt.show()

结果类似下图,我隐去了真实案例生成的词云图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3